Location aware reminders

ABSTRACT

Disclosed are various embodiments employed to generate location and proximity based reminders. To this end, a device is configured to generate its geographical location using a positioning system. The device detects when it impinges upon at least one geographical trigger based upon its geographical location. A predefined reminder is generated in the device when the device impinges upon the geographical trigger.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of and claims priority to co-pendingU.S. patent application Ser. No. 12/330,220 filed Dec. 8, 2008, which isincorporated herein by reference in its entirety

BACKGROUND

Current calendar applications for computers and mobile devices providean ability to schedule appointments at preset times and generatereminders in advance of meetings and the like. However, suchapplications only provide reminders based upon pre-scheduled times.

BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the present disclosure can be better understood withreference to the following drawings. The components in the drawings arenot necessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the disclosure. Moreover, in thedrawings, like reference numerals designate corresponding partsthroughout the several views.

FIG. 1 is a drawing of a networked environment according to anembodiment of the present disclosure.

FIG. 2 is a drawing of a map that illustrates geographical triggersemployed in clients of the networked environment of FIG. 1 according toan embodiment of the present disclosure.

FIGS. 3A-3B are drawings of examples of reminders rendered on a displaydevice of a client device in the networked environment of FIG. 1according various embodiments of the present disclosure.

FIGS. 4A-4F are drawings depicting examples of user interfaces rendered,for example, on a display device of a client in the networkedenvironment of FIG. 1 according to an embodiment of the presentdisclosure.

FIG. 5 is a flowchart that illustrates one example of a portion of theoperation of an application in a client in the networked environment ofFIG. 1 according to an embodiment of the present disclosure.

FIG. 6 is a schematic block diagram that depicts one example of a clientin the networked environment of FIG. 1 according to an embodiment of thepresent disclosure.

DETAILED DESCRIPTION

With reference to FIG. 1, shown is a networked environment 100 thatfacilitates the use of location aware devices. Specifically, thenetworked environment 100 includes various clients 103 that have variousapplications to generate reminders for users based upon the location ofthe clients 103 as will be described. First, a general description ofthe physical makeup of the networked environment 100 and its componentsis described, followed by a discussion of the operation of the same.

To begin, the networked environment 100 includes a number of clients 103and one or more servers 106 that are each coupled to a network 109. Thenetwork 109 may comprise, for example, the Internet, intranets,extranets, wide area networks (WANs), local area networks (LANs), wirednetworks, wireless networks (such as cellular networks), or othersuitable networks, etc., or any combination of two or more suchnetworks.

Each of the clients 103 may comprise, for example, a portable computingsystem such as, for example, a laptop, personal digital assistant,cellular telephone, or other device that generally is portable such thatan individual may carry such device from place to place as can beappreciated. To this end, according to one embodiment, each of theclients 103 includes a processor circuit having a processor and a memoryas can be appreciated.

According to one embodiment, each of the clients 103 includes a displaydevice 126 such as, for example, liquid crystal display (LCD) screens,gas plasma-based flat panel displays, or other types of display devices,etc. The display device 126 included within the client 103 facilitatesthe generation of one or more user interfaces 129 based upon theoperation of various applications in the client 103 as will bedescribed. In addition, each of the clients 103 includes various inputand output devices such as pushbuttons, speakers, microphones, and otherdevices as can be appreciated.

In addition, the client 103 includes various applications and/or systemssuch as, for example, a location aware reminder application 133, apositioning system 136, a map application 139, and other applicationsand/or systems. The location aware reminder application 133 is anapplication that generates reminders based upon a location of the client103 or based on the relative position of the client 103 and otherclients 103. In addition, the reminders may be generated based on othercriteria as will be described.

The positioning system 136 is configured to generate a position of theclient 103. To this end, the positioning system 136 may comprise aglobal positioning system (GPS) that can determine a position of theclient 103 based upon satellite signals as can be appreciated.Alternatively, the positioning system 136 may determine the location ofthe client 103 based upon signals from cellular towers, or other signalsas can be appreciated. Where the positioning system 136 comprises GPS,the positioning system 136 may be embodied in an integrated circuit thatis included in the client 103 as will be described.

The map application 139 is configured to generate a map of a desiredgeographical area as can be appreciated. In one embodiment, the mapapplication 139 may generate maps based on map data stored in the client103. However, where the client 103 memory space is limited, the mapapplication 139 may be configured communicate with a server 106 thatgenerates maps that are downloaded to the client 103 and displayed in auser interface 129 on a display device 126 as will be described.

According to the various embodiments, the location aware reminderapplication 133 executed within a client 103 provides for the generationof reminders in the respective client 103 when the client 103 impingesupon a geographical trigger. A geographical trigger comprises a featuredefined with respect to a geographical location that may be analyzedrelative to a position of the client 103 such that it is determinedwhether a reminder is to be generated as will be described.

To this end, the positioning system 136 generates a geographicallocation of the client 103 on an ongoing basis. As the client 103 movesfrom place to place, the location aware reminder application 133 detectswhether a client 103 impinges upon one or more geographical triggersdefined by a user. When the client 103 impinges upon a geographicaltrigger, then a predefined reminder is generated in the client 103 aswill be described.

The networked environment 100 also includes one or more servers 106,denoted herein as servers 106 a and 106 b. Each of the servers 106 a and106 b may comprise a server computer or like system. The server 106 a isemployed to make an inventory of a merchant that operates a store orother establishment available on the network 109. To this end, theserver 106 a includes an inventory check application 141 and a datastore 143. The server 106 a may include other applications as well.

Stored within the data store 143 is a listing of inventory 145. Theinventory check application 141 is configured to receive requests fromclients 103 to determine whether various items exist within theinventory 145. To this end, the server 106 a may be associated with agiven merchant and the inventory 145 may comprise the inventory of suchmerchant. According to one embodiment, the location aware reminderapplication 133 may be configured to send a query to the inventory checkapplication 141 to verify whether certain items maintained in a list inthe client 103 exist within an inventory 145 as will be described. Ifthe inventory check application 141 confirms that such items existwithin the inventory 145, then the inventory check application 141 sendsa message back to the client 103 confirming the existence of such itemsin the inventory 145. In such case, a reminder may be generated, forexample, indicating to a user that such items may be purchased at agiven location as will be described.

The server 106 b includes a device tracking application 147 and a datastore 149. Stored within the data store is tracking data 151. The devicetracking application 147 is executed on the server 106 b in order totrack the location of various clients 103. To this end, each of theclients 103 may be configured to communicate with the device trackingapplication 147 over the network 109 to provide their geographicalpositions to the server 106 b at any given time. The device trackingapplication 147 may also be configured to respond to queries on the partof clients 103 as to the location of other clients 103 so that a givenclient 103 may be made aware of the location of other clients 103 forreasons that follow.

Alternatively, it may be the case that clients 103 communicate directlywith each other using a peer-to-peer protocol in order to communicatetheir respective locations to each other. To this end, clients 103 maycommunicate with each other by way of e-mail, short message service(SMS), or other communications protocols. Each client 103 may broadcastits location to other clients 103 as can be appreciated. To this end,the position of a respective client 103 may be broadcast to otherclients 103 repeatedly via direct wireless communication or via thenetwork 109 on a periodic basis as can be appreciated. In this manner,clients 103 may be kept aware of the location of other clients 103.

Referring next to FIG. 2, shown is a map 153 that may be generated aspart of a user interface 129 (FIG. 1) on a client 103. The map 153includes various geographical triggers 156 as will be described. Inparticular, the geographical triggers 156 may comprise, for example, atrip line 156 a, an area 156 b, an establishment 156 c, a point 156 d,or other attribute of the map 153. The trip line 153 a is a line drawnat a particular location of the map 153. The location aware reminderapplication 133 can detect whether the client 103 has impinged upon atrip line 156 a when the client 103 detects that the pathway it hastraversed runs through the trip line 156 a. This may be determined basedupon the position of the client 103 generated by the positioning system136 at any given moment.

In this sense, the trip line 156 a is maintained in a memory of theclient 103 as two or more geographical points that include thegeographical coordinates for each end of the trip line 156 a. Thelocation aware reminder application 133 may determine whether the client103 has passed through the trip line 156 a by determining whether theclient 103 has traversed a trajectory that passes between the two pointsat either end of the trip line 156 a. Alternatively, the trip line 156 amay be represented within the client 103 as a series of points, wherethe determination as to whether the client 103 has passed through agiven trip line 156 a is made by determining whether the client 103 haspassed between any two of the points that make up the trip line 156 a.

A geographical trigger 156 may also comprise a geographical area 156 b.Although the geographical area 156 b is shown in FIG. 2 as a rectangle,it is understood that the area 156 b may comprise any shape as can beappreciated. The geographical area 156 b may be defined using any one ofa number of different tools as will be described. A client 103 mayimpinge upon a geographical area 156 b, for example, if the client 103enters the geographical area 156 b. Alternatively, the client mayimpinge upon a geographical area 156 b if the client exits thegeographical area 156 b. To this end, impinging on a given geographicalarea 156 b may involve being located within the defined geographicalarea 156 b, or the area surrounding the geographical area 156 b. To thisend, it may be the case that the impingement upon a geographical area156 b involves crossing the border of the geographical area 156 b.

Another geographical trigger 156 may comprise a known establishment 156c depicted on the map 153. The establishment 156 c may comprise, forexample, a store, park, building, residence, or other type ofestablishment 156 c that can be marked or otherwise indicated on the map153. In one embodiment, the establishment 156 c comprises a merchantsite at which a merchant sells goods such as is the case with stores,etc. The establishment 156 c is much like the geographical area 156 bdescribed above to the extent that the establishment 156 c is defined byan area with a border. However, the establishment 156 c may have a knownname associated therewith to the extent that an establishment 156 c is astore, etc. The client 103 may impinge upon an establishment 156 c inmuch the same way that a client may impinge upon a geographical area 156b described above.

In addition, the geographical trigger 156 may also comprise a singlepoint 156 d on the map 153. To this end, a client 103 may impinge uponthe point 156 d by being positioned within a predefined distance fromthe point 156 d. A radius or other shape around the point 156 d may bedefined for this purpose.

Referring next to FIG. 3A, shown is one example of a location basedreminder 163 that is generated on the display 126 of a given client 103(FIG. 1). The location based reminder 163 is generated based upon thelocation of the client 103. The location based reminder 163 depicted inFIG. 3A reminds a user to purchase certain items 159 such as, forexample, as milk, bread, and eggs. Such location based reminders 163 maybe generated when the portable client 103 that is carried by a userenters an establishment 156 c where it is known that such items 159 maybe purchased. A user may be reminded of items 159 they need to purchasewhenever they walk into an establishment 156 c that sells such items159. Alternatively, the location aware reminder application 133 may beconfigured to generate the location based reminders 163 when a user iswithin a predefined distance of an establishment 156 c that potentiallysells such items 159.

Still further, the location aware reminder application 133 may includethe capability of querying the inventory check application 141 (FIG. 1)in the server 106 a (FIG. 1) that can look up the inventory 145 (FIG. 1)of a given establishment 156 c to determine whether in fact the items159 desired are currently being sold by the establishment 156 c as willbe described. To this end, the location based reminder 163 is locationbased in that it is generated based upon the current location of theclient 103.

With reference next to FIG. 3B, shown is an example of a proximity basedreminder 166 according to another embodiment. The proximity basedreminder 166 is generated based upon the proximity of the client 103 toone or more second clients 103 as will be described. A proximity basedreminder 166 may also be based on location such as is the case when twoclients 103 are in relative proximity to each other at a givenestablishment 156 c (FIG. 2). The proximity based reminder 166 may begenerated in a user interface 129 (FIG. 1) of a display 126 (FIG. 1) ofa client 103 (FIG. 1) as described above. The proximity based reminder166 depicted in FIG. 3B is specifically to pay someone back for a loantaken to purchase lunch a week ago. To this end, the proximity basedreminder 166 is generated by the client 103 when the location awarereminder application 133 detects that a second client 103 is in apredefined geographical relationship relative to the client 103. Thepredefined geographical relationship between the respective clients 103may exist, for example, when the second client 103 is within apredefined distance of the first client 103. This thus allows a user tointeract with the third party who holds the second client 103 to paythem back the amount owed in the example cited above. Thus, theproximity based reminder 166 is generated based upon whether a givenclient 103 is in a predefined geographical relationship relative to asecond client 103 as will be described.

With reference to FIG. 4A, shown is one example of a user interface 129a according to various embodiments. The user interface 129 a includesbuttons or other components that allow a user to select a desired typeof reminder to be created or edited such as a location based reminder163 (FIG. 3A) or a proximity based reminder 166 (FIG. 3B). To this end,a user may select to edit or create a location based reminder 163(including item purchase reminders), a proximity based reminder 166, orother types of reminders. Depending upon which button is manipulated,subsequent user interfaces 129 are generated that facilitate thecreation and editing of reminders as will be described.

In addition, it should be noted that the various user interfaces 129described herein with respect to FIGS. 4A-4F include various graphicaluser components such as buttons, fields, pick-lists, message windows,and other components. It is understood that such components presentedherein are mere examples of the many different kinds of graphicalcomponents that may also be used to accomplish the same purposes. Inaddition, such components may be manipulated in any one of a number ofways. In one example, one may “click” on a component using a cursorcontrolled by a mouse. Although the following description may mentionthat a user may click on a component, it is understood that such anaction is representative of the many different ways one may manipulatethe various components presented.

With reference next to FIG. 4B, shown is one example of a user interface129 b that is generated on the display 126 (FIG. 1) of the respectiveclient 103 by the location aware reminder application 133 in order tofacilitate the generation or editing of a location based reminder 163.To this end, the user interface 129 b facilitates the specification ofvarious settings and other information in order to implement a locationbased reminder 163. The user interface 129 b includes a reminder namefield 203 that a user may manipulate in order to enter a new name for anew location based reminder 163 to be created, or to select a name of anexisting location based reminder 163 to change settings or other dataassociated therewith. To this end, the reminder name field 203 maycomprise a field for the entry of data, a pick list, or other type ofgraphical user component as can be appreciated.

The user interface 129 b includes a map button 206 and a survey button209. The map button 206 may be manipulated in order to generate asubsequent user interface 129 that depicts a map 153 (FIG. 2) upon whicha user may define geographical triggers 156 (FIG. 2) as described above.Also, the survey button 209 may be manipulated to define geographicaltriggers 156 based upon a physical survey conducted by a user as will bedescribed.

The user interface 129 b includes a message window 213 in which a usermay enter one or more messages associated with the current locationbased reminder 163. For each message that is entered in the messagewindow 213, the user may manipulate the “add” button 216 to cause themessage to be accepted. When a message is accepted, it is listed at thebottom of the user interface 129 b as one of the reminder messages 219associated with the current location based reminder 163 beingconfigured. A “remove” button 223 is associated with each of thereminder messages 219 that may be manipulated by a user in order toremove or delete a given reminder message 219 with respect to thecurrent location based reminder 163 if so desired.

Thus, a user may enter multiple messages for a given location basedreminder 163 that are generated for a user when the user impinges on agiven geographical trigger 156 as described above. In this sense, wheremultiple reminder messages 219 are involved, all of the remindermessages 219 may be depicted on a display 126 for a user at the sametime or consecutively based on various inputs as can be appreciated.

Further, the user interface 129 b includes time specification components226 which allow a user to specify time ranges within which the locationbased reminder 163 is active. To this end, the operation of a locationbased reminder 163 (or other reminder) may be limited to specific timeson specific days. Stated further, a location based reminder 163 orproximity based reminder 166, or any other type of reminder as describedherein is “active” when there are no time constraints preventing it frombeing presented to a user. Thus, time constraints dictate the times whena location or proximity based reminder 163/166 is active.

For example, it may be the case that a respective location basedreminder 163 is only active during a given hour of the day, and/or onlyduring various specified days. Still further, the time specificationcomponents 226 include a calendar function so that one may identify botha time range and day or multiple days upon which the location basedreminder 163 is active. For example, one may specify a trip line 156 a(FIG. 2) that is linked to a given location based reminder 163 that ispresented to a user each time the user passes over the trip line 156 a.In addition, a user may specify a period of time that determines whetherthe location based reminder 163 is active at any given time. Wheninactive, a location based reminder 163 would not be presented to auser, for example, even though the client 103 passed over a trip line156 a associated therewith. To this end then, the time specificationcomponents 226 allow a user to specify time criteria in addition to thegeographical triggers 156 that are associated with a given locationbased reminder 163.

Given the components in the user interface 129 b, a user may thusprovide the needed information in the various fields in order to definea given location based reminder 163 as described above with respect tothe user interface 129 b. Specifically, a user may enter a name for anew location based reminder 163 to be created, or the user may selectthe name of a previously existing location based reminder 163 so thatthe user may edit the same. In addition, the user interface 129 bincludes an “accept/done” button 233 that may be manipulated to causethe location aware reminder application 133 to store the settings andother data associated with the currently specified location basedreminder 163 as can be appreciated.

Referring next to FIG. 4C, shown is another user interface 129 c that isemployed to generate a specific type of location based reminder 163 thatinvolves reminding a user to purchase an item 159 according to anembodiment of the present disclosure. The user interface 129 c includesan item list 253 that lists items 159, for example, that a user may wishto purchase or that they need to replenish. Associated with each item159 in the list 253 are source designations 259. The source designations259 indicate, for example, various establishments 156 c (FIG. 2) wherethe items 159 may be found and purchased.

Associated with each of the items 159 is an “add store” button 263. Auser may click on an add store button 263 to specify establishments 156c as source designations 259 to be added to the item list 253 inassociation with a respective one of the items 159. To this end,multiple source designations 259 may be specified for each one of theitems 159 as shown. A “remove” button 266 is provided so that a user mayremove a given one of the source designations 259. Where there is only asingle source designation 259 listed, then clicking on the remove button266 causes the removal of the item 159 from the item list 253. In somecases, the source designation 259 may be “unspecified” meaning that noestablishment 156 c has been designated for such items 159.

The user interface 129 c also includes an item name field 269 in which auser may specify an item 159 to be included in the item list 253. Theuser interface 129 c also includes an “add” button 273 that may bemanipulated in order to cause the listed item 159 in the item name field269 to be added to the item list 253. The item name field 269 may allowa user to enter an item name for a new item 159 that has never beenlisted. Alternatively, the user may view a pick list from which toselect an item 159 to be included in the item list 253, where such items159 may have been listed in the past as would be the case with stapleitems 159 that are replenished periodically as can be appreciated.Listed next to the item names may be source designations 259 that werepreviously associated with such items 159. In addition, a browse button276 is provided that links to other user interfaces 129 that facilitatethe search for specific items 159 to be included in the item list 253.The item name entered may be a generic name or it may be brand specific.

The user interface 129 c also includes the time specification components226 to limit the generation of any location based reminders 163 relativeto the items 159 in the item list 253 to specific times and/or specificdays, etc. In addition, the user interface 129 c includes a “searchonline inventory” toggle 279 that may be activated to indicate whetherthe location aware reminder application 133 should attempt to request acheck of the inventory 145 (FIG. 1) of various establishments 156 c thatmake their inventory 145 available via the network 109 (FIG. 1) in orderto determine whether items 159 in the item list 253 are available atsuch establishments 156 c as was mentioned above.

The items 159 in the item list 253 are generally items 159 that onewishes to purchase such as might be the case with a grocery list orother product list as can be appreciated. One may specify by virtue ofthe add store buttons 263 the source designations 259 where one wishesto purchase such items 159. It may be the case that a user may specifymultiple stores that can be used for the purchase of a given item 159.As a consequence, whenever one finds themselves inside or near theestablishments 156 c comprising source designations 259 for items 159,one will be reminded to purchase such items 159 while there.

The user interface 129 c further allows a user to specify items 159 inthe item list 253 that the user may wish to purchase from specificsource designations 259. By virtue of the fact that a user has specifiedvarious items 159 in the item list 253 along with the sourcedesignations 259, the location aware reminder application 133 isconfigured to generate location based reminders 163 (FIG. 3A) topurchase such items 159 only when a user is either located inside ornear the specified source designation 259. However, where the sourcedesignations 259 are unspecified for a respective item 159, then thelocation aware reminder application 133 may be configured to check theinventory 145 through various servers 106 a (FIG. 1) to determinewhether such items 159 are available in various establishments 156 cwhen a user is insider or near such establishments 156 c.

Assume for example that a user has run out of eggs, milk, and bread attheir home and needs to purchase more of such items 159. Assuming thatsuch items 159 have been added to the item list 253, then the next timethe user is either inside or near a source designation 259 that sellssuch items 159, a location based reminder 163 is generated on a display126 of the client 103 to tell the user to purchase such items 159. As aconsequence, the user will not forget such items 159, thereby avoidingwasted time and energy on a subsequent trip to the respectiveestablishment 156 c.

Given that the client 103 includes the positioning system 136 thatgenerates the position of the client 103 at any given instant, and giventhat the client 103 further includes the map application 139 (FIG. 1)that includes the locations of the various establishments 156 c, thelocation aware reminder application 133 can determine when a user isinside or near a given establishment 156 c that can act as a sourcedesignation 259 for one or more items 159.

To this end, each of the establishments 156 c such as stores or otherestablishments 156 c indicated on a given map 153 may be considered asgeographical triggers 156 that cause the generation of the locationbased reminders 163 to purchase such items 159 listed in the item list253. In addition, by virtue of the time specification components 226, auser may limit the generation of such location based reminders 163 topredefined times on given days as can be appreciated. Once the user hascompleted entering items 159 into the item list 253, specifying sourcedesignations 259, or entering other information in the user interface129 c, the user may manipulate the accept/done button 233 to cause thecurrent item list 253 and other settings to be stored and used by thelocation aware reminder application 133 to generate the location basedreminders 163 as described above.

With reference to FIG. 4D, shown is a user interface 129 d thatfacilitates the specification of the settings for a proximity basedreminder 166 (FIG. 3B) according to various embodiments. The userinterface 129 d includes a name field 303 and an identifier field 306.The name field 303 facilitates the specification of a name of anindividual for which the proximity based reminder 166 is to be created.According to one embodiment, one may enter a new name into the namefield 303, or one may drop down previous names entered, where thesettings for such names may be edited, etc.

The identifier field 306 facilitates the specification of an identifierassociated with the client 103 (FIG. 1) of the person in the name field303 for which the proximity based reminder 166 is generated. To thisend, the identifier in the identifier field 306 may comprise, forexample, a telephone number of a cellular telephone or other identifierthat may be employed to communicate directly with such a device.Alternatively, a server that can identify the location of such devicebased upon the identifier. For example, where the identifier is a cellphone number, such may be used to communicate directly with such clients103 through various protocols such as short message service (SMS) orother protocols. Alternatively, the location aware reminder application133 in the client 103 may communicate with a device tracking application147 (FIG. 1) in a server 106 b (FIG. 1) that can provide the locationinformation about the other client 103 as can be appreciated.

The user interface 129 d also includes a map button 309 that may bemanipulated to view a map 153 (FIG. 2) so that a user may identify anestablishment 156 c (FIG. 2) or define a geographical area 156 b (FIG.2) to be associated with the current proximity based reminder 166. Tothis end, if the user specifies a given establishment 156 c or defines ageographical area 156 b for the proximity based reminder 166, then thegeneration of the proximity based reminder 166 may be limited to thosetimes when both clients 103 are located within the given establishment156 c or geographical area 156 b. To this end, manipulating the mapbutton 309 causes an additional user interface 129 that allows a user toselect one or more establishments 156 c or define one or moregeographical areas 156 b to be associated with the given proximity basedreminder 166.

In addition, the user interface 129 d includes a proximity field 313according to various embodiments. The proximity field 313 allows a userto specify that the proximity based reminder 166 is to be generatedwhenever the two clients 103 are within a certain distance of eachother. Such a distance may be specified in terms of any units includingfeet, yards, miles, or other distance as can be appreciated. It may bethe case that the user specifies both establishments 156 c and/orgeographical areas 156 b using the map button 309, and a distance in theproximity field 313 for the generation of a given proximity basedreminder 166.

The user interface 129 d also includes a message window 316 in which theone or more messages associated with a given proximity based reminder166 may be entered. To this end, such a message may simply say thatanother individual is within a certain distance of the current client103. Alternatively, the message may specify that the user is to performa given task with respect to an individual who is close enough to do sosuch as pay back a debt owed or other task.

The user interface 129 d further includes the time specificationcomponents 226 that may be employed to limit the generation of theproximity based reminder 166 to predefined times as was described above.Further, the user interface 129 d includes an action specificationcomponent 319 in which one may specify that certain tasks are to beperformed when it is detected that the respective clients 103 are withina relative proximity to each other as specified above. For example,where one of the individuals is under a restraining order from a courtnot to come within a certain distance of the user of a client 103, anelectronic mail may be automatically sent to law enforcement agenciesinforming them of a violation of the restraining order when the distancebetween the respective clients 103 is too small.

The user interface 129 d also includes the accept/done button 233 thatinforms the location aware reminder application 133 that all desiredsettings and other information has been entered with respect to thegiven proximity based reminder 166. In response, the location awarereminder application 133 takes steps to save such data and, thereafter,employs the data in generating the respective proximity based reminder166 as can be appreciated.

Referring next to FIG. 4E, shown is one example of a user interface 129e according to various embodiments. The user interface 129 e presents amap 153 to facilitate the creation of the geographical triggers 156 asdescribed above. To this end, the user interface 129 e is generatedbased upon manipulation of the map button 206 (FIG. 4B), map button 309(FIG. 4D), or the add store buttons 263 (FIG. 4C) to facilitate thespecification of the various geographical triggers 156 as describedabove.

In particular, the user interface 129 e includes a map 153 that may begenerated based upon the operation of a map application 139 (FIG. 1) inthe client 103. Alternatively, the map application 139 in the client 103may interface with a map generation system on a server via the network109 (FIG. 1) as can be appreciated. The user interface 129 e includesmap movement control components 353 and zoom control components 356 thatmay be employed to move around the map 153, and to zoom in or out of thepresent view as can be appreciated.

The user interface 129 e further includes a number of marking tools 359that facilitate the specification of a trip line 156 a or a geographicalarea 156 b. Further, one tool 359 comprises a cursor to click on anexisting establishment 156 c depicted in the map 153 to select theestablishment 156 c as a geographical trigger 156. When a trip line 156a or a geographical area 156 b is created, they may be clicked uponthereafter to highlight the same. Once highlighted, such geographicaltriggers 156 may be deleted by manipulating the delete button 363.

Also, one may click on a given establishment 156 c to highlight theestablishment 156 c. A subsequent click on a highlighted establishment156 c may cause the establishment 156 c to be used as a geographicaltrigger 156 or some other action may accomplish the same result. Anestablishment 156 c identified as a geographical trigger 156 may beindicated using a different color, etc. If it is decided at a later timethat such establishment 156 c is not to be used as a geographicaltrigger 156, then one may highlight the establishment 156 c and click onthe delete button 363. This will not cause the deletion of theestablishment 156 c from the map 153, but will remove the establishment156 c as a geographical trigger 156.

Once a user has specified each of the geographical triggers 156 on themap 153, the user may manipulate the accept/done button 366 which causesthe location aware reminder application 133 to store such geographicaltriggers 156 in association with the current location based or proximitybased reminder 163/166. Thereafter, the location aware reminderapplication 133 reverts back to the respective user interface 129 b, 129c, or 129 d as is appropriate.

With reference next to FIG. 4F, shown is another example of a userinterface 129 f according to various embodiments. The user interface 129f facilitates the generation of geographical triggers 156 (FIG. 2) byvirtue of a site survey. In particular, the user interface 129 ffacilitates the creation of a trip line 156 a (FIG. 2) or a geographicalarea 156 b (FIG. 2) by allowing an individual to walk the trip line 156a or along the perimeter of the geographical area 156 b.

To begin, the user interface 129 f includes toggle selectors 403 thatmay be manipulated to indicate whether the user wishes to create a tripline 156 a or geographical area 156 b. The user interface 129 f alsoincludes a start button 406 and a stop button 409. The start button 406is manipulated when a user wishes to begin walking the trip line 156 aor around the perimeter of a given geographical area 156 b. The stopbutton 409 is manipulated when the user has completed walking the tripline 156 a or around the perimeter of the geographical area 156 b.

For example, if the user wishes to create a trip line 156 a, the userwould stand at a starting position comprising one end of the trip line156 a and click the start button 406. The user would then walk the tripline 156 a until they came to the other end. When at the other end, theuser would click the stop button 409. The clicking of the start and stopbuttons 406/409 causes the location aware reminder application 133 torecord the position data generated between the clicking of the start andstop buttons 406/409 so that the location aware reminder application 133can ascertain the location of the geographical trigger 156 created.Stated another way, the clicking of the start/stop buttons 406/409causes the location aware reminder application 133 to record the pathwaytraversed by the client 103. When generating a geographical area 156 b,a user may not necessarily click the stop button 409 in the preciselocation where the user clicked the start button 406. In such case, thelocation aware reminder application 133 is configured to include anydistance between the start and stop points as part of the perimeter ofthe geographical area 156 b defined as can be appreciated.

The user interface 129 f also includes a view map button 413 and anaccept/done button 366. The view map button 413 causes the locationaware reminder application 133 to generate a map 153 as described abovewith reference to FIG. 4E that depicts the trip line 156 a orgeographical area 156 b just created by virtue of the site surveydescribed above. The accept/done button 366 is manipulated in order tosave the manually created geographical triggers 156 and return to therespective user interface 129 b, 129 c, or 129 d, or other userinterface 129 as is appropriate.

After the user has completed creating a given geographical trigger 156by way of a site survey as described above, such geographical triggers156 are listed at the bottom of the user interface 129 f in terms of thesize, length, relevant geographical coordinates, and/or otherinformation. Also, for each geographical trigger 156, a graphicaldepiction thereof may be displayed on a small map.

Associated with each of the geographical triggers 156 is a delete button416 that may be manipulated in order to eliminate a geographical trigger156 from the list. When the user has completed generating thegeographical triggers 156, the accept/done button 366 is manipulated inorder to have such geographical triggers 156 stored with respect to thegiven reminder as described above.

It should also be noted that the user interfaces 129 a-f described aboveare not the only user interfaces 129 that can be generated with respectto the operation of the location aware reminder application 133.Specifically, there are other user interfaces 129 that are presented forvarious purposes. However, such other user interfaces 129 are notdescribed herein, where the user interfaces 129 that are described arepresented to obtain an understanding of the various embodiments of thepresent disclosure.

Referring next to FIG. 5, shown is a flowchart that provides one exampleof the operation of at least a portion of the location aware reminderapplication 133 according to an embodiment of the present disclosure.Alternatively, the flowchart of FIG. 5 may be viewed as depicting stepsof an example of a method implemented in the clients 103 (FIG. 1).

Beginning with box 453, the location aware reminder application 133determines if any location or proximity based reminders 163/166 (FIGS.3A-3B) are to be issued based upon the current location of therespective client 103 and any other clients 103 (in the case ofproximity based reminders 166). This may be determined, for example, ifa given client 103 has impinged on a given geographical trigger 156(FIG. 2) such as by passing over a trip line 156 a (FIG. 2), or enteringor leaving a given geographical area 156 b (FIG. 2) or establishment 156c (FIG. 2). Alternatively, one may determine whether a given client 103has come within a predefined distance of a geographical point 156 d(FIG. 2).

Further, the location aware reminder application 133 may determinewhether a proximity based reminder 166 is to be issued based uponwhether a second client 103 is within a predefined distance of a givenclient 103. At the same time, the location aware reminder application133 may verify whether the two clients 103 are within a givengeographical area 156 b, or establishment 156 c as indicated for aspecific proximity based reminder 166 if applicable, etc. Still othercriteria or limitations may apply as described above, etc. For example,the location aware reminder application 133 determines whether any timelimitations entered via the time specification components 226 (FIGS.4B-4C) allow the generation of the given location or proximity basedreminder 163/166.

In box 456, the location aware reminder application 133 determineswhether a location or proximity based reminder 163/166 is to be issued.If not, then the location aware reminder application 133 reverts to box459. Otherwise, the location aware reminder application 133 proceeds tobox 463. In box 459, a delay is imposed before the location awarereminder application 133 reverts back to box 453 to detect whether anyreminders 163/166 are to be issued given the new potential location ofthe client 103 or the new locations of other clients 103. Thereafter,the location aware reminder application 133 reverts back to box 453.

Assuming that a location or proximity based reminder 163/166 are to begenerated in box 456, then in box 463 a user interface that includes therespective one or more location or proximity based reminders 163/166associated with the current location of the device 103 and respectiveother devices 103 is generated to be rendered for a user on a display126 or to be rendered in some other manner. Thereafter, in box 466, thereminder is presented on the display 126 and any alarms that are activemay be executed such as an audible alarm, a vibration alarm, or otheralarm as can be appreciated.

Thereafter, in box 469, any tasks that are to be implemented upondetection of a given location or proximity based reminder 163/166 areimplemented such as, for example, emailing law enforcement officers aswas described with respect to FIG. 4D above. Thereafter, the locationaware reminder application 133 reverts back to box 453 to detect any newlocation or proximity based reminders 163/166 as described above.

In addition, there may be other operational portions of the locationaware reminder application 133 not described herein in detail thatinvolve functionality associated with the generation of the various userinterfaces 129, the input and storage of settings associated withvarious reminders 163/166, and other functionality as can beappreciated.

Referring next to FIG. 6, shown is a schematic block diagram of oneexample of a client 103 according to an embodiment of the presentdisclosure. The client 103 includes a processor circuit, for example,having a processor 503 and a memory 506, both of which are coupled to alocal interface 509. To this end, the client 103 may comprise, forexample, a portable device such as laptop, personal digital assistant,cellular telephone, or other device. The local interface 509 maycomprise, for example, a data bus with an accompanying address/controlbus or other bus structure as can be appreciated. The client 103includes the display 126 and the positioning system 136 that are bothcoupled to the local interface 509 to allow the processor 503 to applyvisual data to the display 126 and to obtain position data from thepositioning system 136. In addition, the client 103 includes variousinput/output devices 513 such as push buttons, microphones, speakers,and other devices that are coupled to the local interface 509.

Stored in the memory 506 are several components that are executable bythe processor 503. In particular, stored in the memory 506 are anoperating system 516, the location aware reminder application 133, themap application 139, and other systems and applications. Also, variousdata 519 may be stored, for example, in the memory 506, or some othermemory accessible to the client 103. It is understood that there may beother applications that are stored in the memory 506 and are executableby the processor 503 as can be appreciated. Where any componentdiscussed herein is implemented in the form of software, any one of anumber of programming languages such as, for example, C, C++, Java, JavaScript, Perl, Python, Flash, or other programming languages.

A number of software components are stored in the memory 506 and areexecutable by the processor 503. In this respect, the term “executable”means a program file that is in a form that can ultimately be run by theprocessor 503. Examples of executable programs may be, for example, acompiled program that can be translated into machine code in a formatthat can be loaded into a random access portion of the memory 506 andrun by a respective processor 503, source code that may be expressed inproper format such as object code that is capable of being loaded into arandom access portion of the memory 506 and executed by a processor 503,or source code that may be interpreted by another executable program togenerate instructions in a random access portion of the memory 506 to beexecuted by a processor 503, etc. An executable program may be stored inany portion or component of the memory 506 including, for example,random access memory (RAM), read-only memory (ROM), hard drive,solid-state drive, USB flash drive, memory card, optical disc such ascompact disc (CD) or digital versatile disc (DVD), floppy disk, magnetictape, or other memory components.

The memory 506 is defined herein as both volatile and nonvolatile memoryand data storage components. Volatile components are those that do notretain data values upon loss of power. Nonvolatile components are thosethat retain data upon a loss of power. Thus, the memory 506 maycomprise, for example, random access memory (RAM), read-only memory(ROM), hard disk drives, solid-state drives, USB flash drives, memorycards accessed via a memory card reader, floppy disks accessed via anassociated floppy disk drive, optical discs accessed via an optical discdrive, magnetic tapes accessed via an appropriate tape drive, and/orother memory components, or a combination of any two or more of thesememory components. In addition, the RAM may comprise, for example,static random access memory (SRAM), dynamic random access memory (DRAM),or magnetic random access memory (MRAM) and other such devices. The ROMmay comprise, for example, a programmable read-only memory (PROM), anerasable programmable read-only memory (EPROM), an electrically erasableprogrammable read-only memory (EEPROM), or other like memory device.

In addition, the processor 503 may represent multiple processors and thememory 506 may represent multiple memories that operate in parallel. Insuch a case, the local interface 509 may be an appropriate network thatfacilitates communication between any two of the multiple processors,between any processor and any one of the memories, or between any two ofthe memories etc. The local interface 509 may comprise additionalsystems designed to coordinate this communication, including, forexample, performing load balancing. The processor 503 may be ofelectrical or of some other available construction.

Although various systems and applications such as the location awarereminder application 133 and/or other systems and applications mentionedabove may be depicted as being embodied in software or code executed bygeneral purpose hardware such as processor-based systems as discussedabove, as an alternative the same may also be embodied in dedicatedhardware or a combination of software/general purpose hardware anddedicated hardware. If embodied in dedicated hardware, such systems andapplications can be implemented as a circuit or state machine thatemploys any one of or a combination of a number of technologies. Thesetechnologies may include, but are not limited to, discrete logiccircuits having logic gates for implementing various logic functionsupon an application of one or more data signals, application specificintegrated circuits having appropriate logic gates, or other components,etc.

The flowchart of FIG. 6 shows the architecture, functionality, andoperation of an implementation of the location aware reminderapplication 133. If embodied in software, each block may represent amodule, segment, or portion of code that comprises program instructionsto implement the specified logical function(s). The program instructionsmay be embodied in the form of source code that comprises human-readablestatements written in a programming language or machine code thatcomprises numerical instructions recognizable by a suitable executionsystem such as a processor in a computer system or other system. Themachine code may be converted from the source code, etc. If embodied inhardware, each block may represent a circuit or a number ofinterconnected circuits to implement the specified logical function(s).

Although the flowchart of FIG. 6 shows a specific order of execution, itis understood that the order of execution may differ from that which isdepicted. For example, the order of execution of two or more blocks maybe scrambled relative to the order shown. Also, two or more blocks shownin succession in FIG. 6 may be executed concurrently or with partialconcurrence. In addition, any number of counters, state variables,warning semaphores, or messages might be added to the logical flowdescribed herein, for purposes of enhanced utility, accounting,performance measurement, or providing troubleshooting aids, etc. It isunderstood that all such variations are within the scope of the presentdisclosure.

Also, where various systems and applications described herein such asthe location aware reminder application 133 and/or other systems andapplications comprise software or code, each can be embodied in anycomputer-readable medium for use by or in connection with an instructionexecution system such as, for example, a processor in a computer systemor other system. In this sense, such systems or applications maycomprise, for example, statements including instructions anddeclarations that can be fetched from the computer-readable medium andexecuted by the instruction execution system. In the context of thepresent disclosure, a “computer-readable medium” can be any medium thatcan contain, store, or maintain the above-described systems andapplications for use by or in connection with the instruction executionsystem. The computer readable medium can comprise any one of manyphysical media such as, for example, electronic, magnetic, optical, orsemiconductor media. More specific examples of a suitablecomputer-readable medium would include, but are not limited to, magnetictapes, magnetic floppy diskettes, magnetic hard drives, memory cards,solid-state drives, Universal Serial Bus (USB) flash drives, or opticaldiscs. Also, the computer-readable medium may be a random access memory(RAM) including, for example, static random access memory (SRAM) anddynamic random access memory (DRAM), or magnetic random access memory(MRAM). In addition, the computer-readable medium may be a read-onlymemory (ROM), a programmable read-only memory (PROM), an erasableprogrammable read-only memory (EPROM), an electrically erasableprogrammable read-only memory (EEPROM), or other type of memory device.

It should be emphasized that the above-described embodiments of thepresent disclosure are merely possible examples of implementations setforth for a clear understanding of the principles of the disclosure.Many variations and modifications may be made to the above-describedembodiment(s) without departing substantially from the spirit andprinciples of the disclosure. All such modifications and variations areintended to be included herein within the scope of this disclosure andprotected by the following claims.

Therefore, the following is claimed:
 1. A method, comprising: definingat least one geographical area in a device by generating a userinterface rendered by the device, the user interface comprising apathway traversed by the device during a predefined period of time, theuser interface further facilitating definition of at least onegeographical area associated with a merchant site; determining ageographical location of the device using a positioning systemassociated with the device; maintaining in the device a list of items;determining whether at least one of the items is available at themerchant site; detecting when the device impinges upon the at least onegeographical area based upon the geographical location of the device bydetermining whether the device is located within the at least onegeographical area; and generating a predefined reminder in the deviceassociated with at least one of the items when a position of the deviceimpinges upon the at least one geographical area associated with themerchant site.
 2. A method, comprising: determining a geographicallocation of a mobile device with a positioning system associated withthe mobile device; generating a user interface rendered by the mobiledevice, the user interface comprising a pathway traversed by the mobiledevice during a predefined period of time, the user interface furtherfacilitating definition of at least one geographical trigger associatedwith a merchant site; maintaining a list accessible to the mobiledevice, the list comprising at least one item associated with at leastone geographical trigger; detecting when the device impinges upon the atleast one geographical trigger based at least in part upon thegeographical location of the mobile device; and generating a predefinedreminder in the mobile device when the mobile device impinges upon thegeographical trigger.
 3. The method of claim 2, wherein the at least onegeographical trigger further comprises a trip line, and the step ofdetecting when the mobile device impinges upon the at least onegeographical trigger further comprises the step of determining whetherthe mobile device has passed through the trip line.
 4. The method ofclaim 2, wherein the at least one geographical trigger further comprisesa geographical area, and the step of detecting when the mobile deviceimpinges upon the at least one geographical trigger further comprisesthe step of determining whether the mobile device is located within thegeographical area.
 5. The method of claim 2, wherein the geographicaltrigger further comprises a geographical location, and the step ofdetecting when the mobile device impinges upon the at least onegeographical trigger further comprises the step of determining whetherthe mobile device is within a predefined distance of the geographicallocation.
 6. The method of claim 5, wherein the geographical locationfurther comprises a geographical area.
 7. The method of claim 2, furthercomprising the step of identifying the merchant site on a map renderedby the mobile device.
 8. The method of claim 2, wherein the step ofdefining the at least one geographical trigger in the mobile devicefurther comprises the steps of: displaying a map on the mobile device;and identifying the at least one geographical trigger on the map.
 9. Themethod of claim 2, wherein the positioning system is configured todetermine the geographic location of the mobile device based at least inpart upon at least one of: global positioning system satellite signalsor signals received from at least one cellular tower.
 10. A system,comprising: a portable device having a processor circuit and a displayscreen, the processor circuit having a processor and a memory; apositioning system in the portable device configured to generate ageographical location of the portable device; and a location awarereminder application executable by the processor circuit, the locationaware reminder application comprising: logic that maintains a listcomprising at least one item; logic that detects when the portabledevice impinges upon the at least one geographical trigger based atleast in part upon the geographical location of the portable device; andlogic that generates a reminder associated with the at least one item inthe portable device, the reminder rendered on the display screen whenthe portable device impinges upon the geographical trigger by generatinga reminder on the portable device to purchase at least one of the itemswhen a position of the portable device impinges upon the at least onegeographical trigger comprising a predefined site, wherein thepredefined site is a merchant site.
 11. The system of claim 10, whereinthe geographical trigger further comprises a trip line, wherein thelogic that detects when the portable device impinges upon the at leastone geographical trigger further comprises logic that determines whetherthe portable device has passed through the trip line.
 12. The system ofclaim 10, wherein the geographical trigger further comprises ageographical area surrounding the merchant site, wherein the logic thatdetects when the portable device impinges upon the at least onegeographical trigger further comprises logic that determines whether theportable device enters the geographical area.
 13. The system of claim10, wherein the geographical trigger further comprises a geographicallocation of the merchant site, wherein the logic that detects when theportable device impinges upon the at least one geographical triggerfurther comprises logic that determines whether the portable device iswithin a predefined distance of the geographical location.
 14. Thesystem of claim 10, wherein the location aware reminder applicationfurther comprises logic that generates a reminder on the portable deviceto purchase the at least one item when a position of the portable deviceimpinges upon the at least one geographical trigger indicating at leasta proximity to the merchant site.
 15. The system of claim 10, whereinthe location aware reminder further comprises logic that determineswhether the at least one item is available for purchase from themerchant site.
 16. The system of claim 10, wherein the positioningsystem is configured to determine the geographic location of the mobiledevice based at least in part upon at least one of: global positioningsystem satellite signals or signals received from at least one cellulartower.
 17. A method, comprising: determining in a first device ageographical location of the first device using a positioning system;maintaining a position of a second device in the first device; detectingwhen the first device is located in a predefined geographicalrelationship relative to the second device; and rendering a reminder inthe first device when the first device is located in the predefinedgeographical relationship relative to the second device, the reminderbeing associated with a user associated with the second device.
 18. Themethod of claim 17, wherein the step of detecting when the first deviceis located in the predefined geographical relationship relative to thesecond device further comprises the step of determining whether thefirst device is within a predefined distance from the second device. 19.The method of claim 17, wherein the step of detecting when the firstdevice is located in the predefined geographical relationship relativeto the second device further comprises the step of determining whetherthe first device and the second device are located within a sameestablishment.
 20. The method of claim 17, wherein the reminderindicates a task to be performed with respect to a user of the seconddevice.
 21. The method of claim 17, further comprising the step ofperforming a task in the first device when the first device is locatedin the predefined geographical relationship relative to the seconddevice.
 22. A method, comprising: determining a geographical location ofa first mobile device with a positioning system associated with thefirst mobile device; generating a user interface rendered by the firstmobile device, the user interface comprising a pathway traversed by thefirst mobile device during a predefined period of time, the userinterface further facilitating definition of at least one geographicaltrigger associated with a merchant site; maintaining a list accessibleto the first mobile device, the list comprising at least one itemassociated with at least one geographical trigger; detecting when thedevice impinges upon the at least one geographical trigger based atleast in part upon the geographical location of the first mobile device;detecting when the first mobile device is located in a predefinedgeographical relationship relative to a second mobile device; andgenerating a predefined reminder in the first mobile device when thefirst mobile device impinges upon the geographical trigger, thegeographical trigger comprising a predefined geographical relationshiprelative to the second mobile device.
 23. A method, comprising the stepsof: maintaining, in a mobile device, a list comprising at least oneitem; detecting, via the mobile device, when the mobile device impingesupon at least one geographical trigger based at least in part upon thegeographical location of the mobile device; and generating, via themobile device, a reminder associated with the at least one item in themobile device, the reminder rendered on the display screen when themobile device impinges upon the geographical trigger by generating areminder on the mobile device to purchase at least one of the items whena position of the mobile device impinges upon the at least onegeographical trigger comprising a predefined site, wherein thepredefined site is a merchant site.
 24. The method of claim 23, whereinthe geographical trigger further comprises a trip line, wherein the stepof detecting when the portable device impinges upon the at least onegeographical trigger further comprises the step of determining, via theportable device, whether the portable device has passed through the tripline.
 25. The method of claim 23, wherein the geographical triggerfurther comprises a geographical area surrounding the merchant site,wherein the step of detecting when the portable device impinges upon theat least one geographical trigger further comprises the step ofdetermining, via the portable device, whether the portable device entersthe geographical area.
 26. The method of claim 23, wherein thegeographical trigger further comprises a geographical location of themerchant site, wherein the step of detecting when the portable deviceimpinges upon the at least one geographical trigger further comprisesthe step of determining, via the portable device, whether the portabledevice is within a predefined distance of the geographical location. 27.The method of claim 23, further comprising the step of generating areminder on the portable device to purchase the at least one item when aposition of the portable device impinges upon the at least onegeographical trigger indicating at least a proximity to the merchantsite.
 28. The method of claim 23, further comprising the step ofdetermining whether the at least one item is available for purchase fromthe merchant site.